home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / wsc4vb24 / async.txt < prev    next >
Text File  |  1999-05-23  |  29KB  |  902 lines

  1.  
  2.  
  3.  
  4.                       RS232/422/485 Serial Communications
  5.  
  6.  
  7.                               USERS MANUAL
  8.  
  9.  
  10.  
  11.                                Version 2.0
  12.  
  13.                              January 22, 1999
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.                             Copyright (C) 1999
  21.                             All rights reserved
  22.  
  23.  
  24.  
  25.                         MarshallSoft Computing, Inc.
  26.                            Post Office Box 4543
  27.                            Huntsville AL 35815
  28.  
  29.                         Voice : 256-881-4630
  30.                           FAX : 256-880-0925
  31.                         email : info@marshallsoft.com
  32.                           web : http://www.marshallsoft.com
  33.                           ftp : ftp://ftp.marshallsoft.com/marshallsoft
  34.  
  35.  
  36.                                _______
  37.                           ____|__     |                (R)
  38.                        --+       |    +-------------------
  39.                          |   ____|__  |  Association of
  40.                          |  |       |_|  Shareware
  41.                          |__|   o   |    Professionals
  42.                        --+--+   |   +---------------------
  43.                             |___|___|    MEMBER
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.       MARSHALLSOFT is a trademark of MarshallSoft Computing, Inc.
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.      RS232/422/485 Serial Communications                       Page 1
  61.  
  62.                             C O N T E N T S
  63.  
  64.  
  65.  
  66.       Chapter                                                   Page
  67.  
  68.  
  69.        1.0 The UART...................................................3
  70.  
  71.            1.1 UART Types.............................................3
  72.  
  73.                National 8250..........................................3
  74.  
  75.                National 16450.........................................3
  76.  
  77.                National 16550.........................................3
  78.  
  79.                StarTech 16650.........................................3
  80.  
  81.                Texas Instruments 16750................................3
  82.  
  83.            1.2 UART Operation.........................................4
  84.  
  85.            1.3 RS-232 Signals.........................................5
  86.  
  87.            1.4 UART Registers.........................................6
  88.  
  89.            1.5 Register Summary.......................................7
  90.  
  91.        2.0 Modems
  92.  
  93.            2.1 Modem Standards.......................................11
  94.  
  95.            2.2 Flow Control..........................................12
  96.  
  97.            2.3 Modem Initialization..................................13
  98.  
  99.        3.0 RS422 and RS485...........................................14
  100.  
  101.        4.0 Other Serial Devices......................................15
  102.  
  103.        5.0 Shareware.................................................15
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.      RS232/422/485 Serial Communications                       Page 2
  121.  
  122.       1.0 The UART
  123.  
  124.       The heart of serial communications is the "Universal Asynchronous
  125.       Receiver Transmitter", or UART for short. The UART is responsible for
  126.       controlling the computer's RS-232/422/485 port.
  127.  
  128.       1.1 UART Types
  129.  
  130.       UARTs can be broken down into two classes: buffered and unbuffered.
  131.       The 8250 and 16450 are unbuffer, while the 16550, 16650, and 16750
  132.       are buffered.
  133.  
  134.       1.1.1 National 8250
  135.  
  136.       The National 8250 was the original UART used in the IBM PC and
  137.       compatibles, and are only suitable up to 9600 baud on slower DOS
  138.       (before the IBM/AT) machines. The 8250A is somewhat faster than the
  139.       8250, but should also be limited to slower DOS machines.
  140.  
  141.       1.1.2 National 16450
  142.  
  143.       The National 16450 was designed to work with the IBM PC/AT (16-bit
  144.       data bus) and faster machines. Faster than the 8250, it still has a
  145.       one-byte buffer. The 16450 chip is suitable for many DOS applications
  146.       and some Windows applications up to about 38400 baud.
  147.  
  148.       1.1.3 National 16550
  149.  
  150.       The National 16550 features 16-byte transmit side and receive side
  151.       FIFO buffers. The interrupt trigger level (on the receive side) can
  152.       be set at 1, 4, 8 or 14 bytes. The TX FIFO trigger is fixed at 16
  153.       bytes.
  154.  
  155.       The FIFOs on the original 16550 UARTs did not work. The 16550A soon
  156.       followed the 16550 and is the "standard" UART for Windows machines.
  157.  
  158.       The 16550A is recommended as the minimum chip on any new serial board
  159.       purchase.
  160.  
  161.       1.1.4 StarTech 16650
  162.  
  163.       The StarTech 16650 features 32-byte FIFOs and on-chip flow control,
  164.       and can be run at up to 460800 baud. It is also pin for pin
  165.       compatible with the 16550 UART.
  166.  
  167.       1.1.5 TI 16750
  168.  
  169.       The Texas Instruments 16750 features 64-byte FIFOs and on-chip flow
  170.       control and can be run at up to 921600 baud, but is not pin for pin
  171.       compatible with the 16550 UART.
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.      RS232/422/485 Serial Communications                       Page 3
  181.  
  182.       1.2 UART Operation
  183.  
  184.       The purpose of the UART is:
  185.  
  186.       (1) To convert bytes from the CPU (Central Processing Unit) into a
  187.       serial format by adding the necessary start, stop, and parity bits to
  188.       each byte before transmission, and to then transmit each bit at the
  189.       correct baud rate.
  190.  
  191.       The first bit is always the start bit, followed by 5 to 8 data bits,
  192.       (optionally) followed by the parity bit, followed by the stop bit or
  193.       bits.
  194.  
  195.       (2) To convert the incoming stream (at a specified baud rate) of
  196.       serial bits into bytes by removing the start, stop, and parity bit
  197.       before being made available to the CPU.
  198.  
  199.       The UART is capable of operating in one of two modes, 'polled' and
  200.       'interrupt driven'.  The serial communications functions in the BIOS
  201.       use the polled method.  In this approach, the CPU is typically in a
  202.       loop asking the UART over and over again if it has a byte ready.  If
  203.       a byte is ready, the polling code returns the byte. But, if the next
  204.       byte comes in before the polling code is executing again, then that
  205.       byte is lost.
  206.  
  207.       In the interrupt driven approach, when a byte is received by the
  208.       UART, an 'Interrupt Service Routine' (ISR) is executed immediately,
  209.       suspending temporarily whatever is currently executing. The ISR then
  210.       moves the byte from the UART to a buffer so that the application
  211.       program can later read it.
  212.  
  213.       The 16550 can be programmed so that a receive (RX) interrupt is not
  214.       triggered until 4 (or 8 or 14) bytes have been received, while the
  215.       16650 can be triggered at up to 30 bytes, and the 16750 can be
  216.       triggered at up to 56 bytes. This can significantly reduce the CPU
  217.       processing time, since 14 (or 30 or 56) bytes can be moved at once.
  218.  
  219.       Transmitted bytes are queued up awaiting transmission.  When a byte
  220.       is moved from the UART transmitter holding register to the UART
  221.       transmitter shift register, an interrupt is generated and the next
  222.       byte is taken from the transmitter buffer by the ISR and written to
  223.       the UART holding register.
  224.  
  225.       Up to 16 bytes can be written at once to the transmitter FIFO buffer
  226.       while processing one transmitter interrupt if an 16550 UART is used,
  227.       while the 16650 can write up to 32 bytes at once, and the 16750 can
  228.       write up to 64 bytes at once.
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.      RS232/422/485 Serial Communications                       Page 4
  241.  
  242.       1.3 RS-232 Signals
  243.  
  244.       RS-232 is the name of the serial data interface standard used to
  245.       connect computers to modems.
  246.  
  247.       A summary of the serial port pins and their function follows.  For
  248.       more detailed information, refer to one of the many books dealing
  249.       with RS-232 interfacing.
  250.  
  251.       Signal Ground Pin 7 (DB25), Pin 5 (DB9)
  252.  
  253.       The SG line is used as the common signal ground, and must always be
  254.       connected.
  255.  
  256.       Transmit Data Pin 2 (DB25), Pin 3 (DB9)
  257.  
  258.       The TX line is used to carry data from the computer to the serial
  259.       device.
  260.  
  261.       Receive Data Pin 3 (DB25), Pin 2 (DB9)
  262.  
  263.       The RX li